package com.clkj.zhonghui.pojo.common;

import org.apache.commons.io.FileUtils;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;

/**
 * 文件上传控制类
 *
 * @author Administrator
 */
public class FileUploadTool {

    /**
     * 文件上传类
     * 文件会自动绑定到MultipartFile中
     *
     * @param request 获取请求信息
     * @param file    上传的文件
     * @return 上传成功或失败结果
     * @throws IOException
     * @throws IllegalStateException
     */
    public static String upload(HttpServletRequest request,
                                MultipartFile file, String fileSrc, String paths) throws IllegalStateException, IOException {
        // 测试MultipartFile接口的各个方法
        // 如果文件不为空，写入上传路径，进行文件上传
        if (!file.isEmpty()) {
            // 构建上传文件的存放路径
            String path = paths + "/" + fileSrc + "/";
            // 获取上传的文件名称，并结合存放路径，构建新的文件名称
            String filename = System.currentTimeMillis() + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
            File filepath = new File(path, filename);
            // 判断路径是否存在，不存在则新创建一个
            if (!filepath.getParentFile().exists()) {
                filepath.getParentFile().mkdirs();
            }
            System.out.println(path);
            // 将上传文件保存到目标文件目录
            File files = new File(path + File.separator + filename);
            FileUtils.copyInputStreamToFile(file.getInputStream(), files);
            //file.transferTo(new File(path + File.separator + filename));
            return filename;
        } else {
            return "error";
        }
    }
}
